﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using com.clinica.business.entities;
using com.clinica.business.BE.acttar;
using com.clinica.business.BE.comun;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-06-01
 ****************************************************************************************/

namespace com.clinica.business.BL.interfaces.acttar
{
    [ServiceContract(Namespace = "http://com.clinica.business.BL.interfaces.acttar", Name = "ITarifarioBL", SessionMode = SessionMode.Allowed)]
    public interface ITarifarioBL
    {
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTarifarios")]
        List<TarifarioBE> ObternerTarifarios(TarifarioBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTarifariosXEstado")]
        List<TarifarioBE> ObternerTarifariosXEstado(TarifarioBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoDocumento")]
        List<ParametrosBE> ObternerTipoDocumento(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTarifario")]
        List<TarifarioBE> ObternerTarifario(TarifarioBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTarifarioOrigen")]
        List<TarifarioBE> ObternerTarifarioOrigen(TarifarioBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerServicios")]
        List<ServiciosBE> ObternerServicios(ServiciosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GuardarTarifario")]
        int GuardarTarifario(int accion, List<TarifarioBE> request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ActualizarEstadoTarifario")]
        int ActualizarEstadoTarifario(TarifarioBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AnularTarifario")]
        void AnularTarifario(TarifarioBE obj);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "RechazarSolicitudTarifario")]
        int RechazarSolicitudTarifario(TarifarioBE obj);

    
    }
}
